using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using EYDIngenieria.ERP.Aplicacion.Mantenedores;
using EYDIngenieria.ERP.ObjetosDeNegocio.Dominio;

public partial class Mantenedores_Cliente : System.Web.UI.Page
{
    private EYDIngenieria.ERP.Aplicacion.Mantenedores.MantenedorUsuario mantenedor = new MantenedorUsuario();
    private EYDIngenieria.ERP.Aplicacion.Mantenedores.MantenedorRol mantenedorRol = new MantenedorRol();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session.Keys.Count == 0)
            Response.Redirect("../Default.aspx");
        if (!IsPostBack)
            MantenedorVistaInicial();
    }
    private void MantenedorVistaInicial()
    {
        ActivarFormulario(false);


        btnNuevo.Visible = true;
        btnAceptar.Visible = false;
        btnCancelar.Visible = false;
        btnEliminar.Visible = false;
        btnModificar.Visible = false;
        SetearFormulario();
    }

    private void ActivarFormulario(bool activado)
    {
        txbNombreUsuario.Enabled = activado;
        txbNombre.Enabled = activado;
        txbApellidos.Enabled = activado;
        txbContrasena.Enabled = activado;
        ddlRol.Enabled = activado;
    
    }

    private void MantenedorVisualizacion()
    {
        SetearFormulario();
        ActivarFormulario(false);
        btnNuevo.Visible = true;
        btnAceptar.Visible = false;
        btnCancelar.Visible = false;
        btnEliminar.Visible = true;
        btnModificar.Visible = true;

    }

    private void MantenedorVistaGestion()
    {
        SetearFormulario();
        ActivarFormulario(true);
        btnNuevo.Visible = false;
        btnAceptar.Visible = true;
        btnCancelar.Visible = true;
        btnEliminar.Visible = false;
        btnModificar.Visible = false;
    }
    protected void btnNuevo_Click(object sender, EventArgs e)
    {
        gdvUsuarios.SelectedIndex = -1;
        SetearFormulario();
        MantenedorVistaGestion();
    }
    protected void btnModificar_Click(object sender, EventArgs e)
    {
        MantenedorVistaGestion();
    }
    protected void btnEliminar_Click(object sender, EventArgs e)
    {
        int id = (gdvUsuarios.SelectedValue == null) ? 0 : int.Parse(gdvUsuarios.SelectedValue.ToString());
        if (id == 0)
            return;

        Usuario u = mantenedor.Obtener(id);
        mantenedor.Eliminar(u);
        gdvUsuarios.SelectedIndex = -1;
        ActualizaDataSource();
        SetearFormulario();
    }
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        int id = (gdvUsuarios.SelectedValue == null) ? 0 : int.Parse(gdvUsuarios.SelectedValue.ToString());
        if (id > 0)
            MantenedorVisualizacion();
        else
            MantenedorVistaInicial();
    }
    protected void btnAceptar_Click(object sender, EventArgs e)
    {
        if (ddlRol.SelectedIndex <= 0)
            return; 
        int id = (gdvUsuarios.SelectedValue == null) ? 0 : int.Parse(gdvUsuarios.SelectedValue.ToString());
        EYDIngenieria.ERP.ObjetosDeNegocio.Dominio.Usuario o = new Usuario();
        o.NombreUsuario = txbNombreUsuario.Text;
        o.Nombre = txbNombre.Text;
        o.Apellidos = txbApellidos.Text;
        o.Contrasena = txbContrasena.Text;
        o.Rol= new Rol();
        o.Rol.Id = int.Parse(ddlRol.SelectedValue);
        o.Id = id;
        if (id == 0)
            mantenedor.Agregar(o);
        else
            mantenedor.Modificar(o);

        ActualizaDataSource();
        MantenedorVistaInicial();

    }

    private void SetearFormulario()
    {
        int id = (gdvUsuarios.SelectedValue == null) ? 0 : int.Parse(gdvUsuarios.SelectedValue.ToString());
        txbNombreUsuario.Text = string.Empty;
        txbNombre.Text = string.Empty;
        txbContrasena.Text = string.Empty;
        txbApellidos.Text = string.Empty;
        ddlRol.SelectedIndex = -1;

        ddlRol.DataSource = mantenedorRol.Listar();
        ddlRol.DataTextField = "Nombre";
        ddlRol.DataValueField = "Id";
        ddlRol.DataBind();
        ListItem li = new ListItem("Selecionar","0");
        ddlRol.Items.Insert(0,li);
        if (id > 0)
        {
            Usuario p = mantenedor.Obtener(id);
            ddlRol.SelectedValue = p.Rol.Id.ToString();
            txbNombreUsuario.Text = p.NombreUsuario;
            txbNombre.Text = p.Nombre;
            txbContrasena.Text = p.Contrasena;
            txbApellidos.Text = p.Apellidos;

        }
    }

    private void ActualizaDataSource()
    {
        odsUsuarios.Select();
        odsUsuarios.DataBind();
        gdvUsuarios.DataBind();
    }
  

    protected void gdvUsuarios_SelectedIndexChanged1(object sender, EventArgs e)
    {
        MantenedorVisualizacion();
    }
}
